type key = "金币" | "能量" | "签到" | "能量恢复" | "背景静音" | "音效静音" | "任务" | "攻击力等级" | "攻速等级" | "辅机系统" | "钻石" | String
/**
 * 缓存类管理
 */
var LocalStorageManager = {
    ls: cc.sys.localStorage,
    /**
     * 保存数据
     * @param key 关键字
     * @param value 要保存的值
     */
    saveData(key: key, value: any) {
        this.ls.setItem(key, JSON.stringify(value));
    },
    /**
     * 获取数据
     * @param key 关键字
     * @param successCallback 获取数据后回调函数
     * @param failCallBack 第一次加载,没数据,这里一般执行初始化操作
     */
    getData(key: key, successCallback: Function, failCallBack?: Function): void {
        let value = this.ls.getItem(key);
        if (value === null || typeof value === "undefined" || value === "") {
            //第一次加载,没数据,一般执行初始化操作
            if (failCallBack) {
                failCallBack();
            }
        } else if (successCallback) {
            if (value instanceof Object) {
                successCallback(value);
            } else {
                successCallback(JSON.parse(value));
            }
        }
    }
}

window["LocalStorageManager"] = LocalStorageManager